package com.yuw.collectionTools.innerclassdemo;

public class TestDriver {

	public static void main(String[] args) {
		test02();
	}

	/**
	 * 通过匿名内部类来调用接口的行为方法
	 */
	private static void test03() {
		// 匿名内部类
		new IFlyable() {
			@Override
			public void fly() {
				// 直接实现抽象方法，然后就可以使用new分配内存
				System.out.println("U are flying...");
			}
		}.fly(); // 匿名调用接口或抽象类的行为方法【只能执行一次】
		// 调用接口的行为方法
	}
	
	/**
	 * 通过局部内部类来调用接口的行为方法
	 */
	private static void test02() {
		// 局部内部类
		IFlyable ifly = new IFlyable() {
			@Override
			public void fly() {
				// 直接实现抽象方法，然后就可以使用new分配内存
				System.out.println("U are flying...");
			}
		};
		
		// 调用接口的行为方法
		ifly.fly();
	}

	/**
	 * 通过使用子类实现接口来调用接口的行为方法
	 */
	private static void test01() {
		// 面向接口编程【多态】
		IFlyable ifly = new BirdFly();
		// 调用实现类的行为方法
		ifly.fly();
	}

}
